package cn.iocoder.yudao.module.im.controller.admin.member.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - IM会话 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MemberConversationRespVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11067")
    @ExcelProperty("编号")
    private Long id;

    @Schema(description = "分组ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9715")
    @ExcelProperty("分组ID")
    private Long groupId;

    @Schema(description = "分组类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("分组类型")
    private Integer groupType;

    @Schema(description = "分组封面")
    @ExcelProperty("分组封面")
    private String groupLogo;

    @Schema(description = "会话用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5188")
    @ExcelProperty("会话用户ID")
    private Long byUserId;

    @Schema(description = "会话所属用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19244")
    @ExcelProperty("会话所属用户ID")
    private Long userId;

    @Schema(description = "最后聊天时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("最后聊天时间")
    private LocalDateTime lastMessageTime;

    @Schema(description = "最后聊天内容")
    @ExcelProperty("最后聊天内容")
    private String lastMessageContent;

    @Schema(description = "最后发送的消息类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("最后发送的消息类型")
    private Integer lastMessageContentType;

    @Schema(description = "最后发送的消息是否已读", example = "1")
    @ExcelProperty("最后发送的消息是否已读")
    private String lastMessageReadStatus;

    @Schema(description = "置顶")
    @ExcelProperty("置顶")
    private String pinned;

    @Schema(description = "未读消息数", requiredMode = Schema.RequiredMode.REQUIRED, example = "27068")
    @ExcelProperty("未读消息数")
    private Integer unreadMessageCount;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}